package com.nari.ncps.screen.service.electric;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nari.ncps.screen.entity.electric.ElectricSafetyenvDensityRt;

import java.util.List;

/**
 * <p>
 * 火电安全环保浓度实时数据表 服务类
 * </p>
 *
 * @author xuesong
 * @since 2025-10-12
 */
public interface ElectricSafetyenvDensityRtService extends IService<ElectricSafetyenvDensityRt> {

    /**
     * 根据年份查询浓度实时数据
     * @param year 年份
     * @return 浓度实时数据列表
     */
    List<ElectricSafetyenvDensityRt> getByYear(Integer year);

    /**
     * 根据年份和月份查询浓度实时数据
     * @param year 年份
     * @param month 月份
     * @return 浓度实时数据列表
     */
    List<ElectricSafetyenvDensityRt> getByYearAndMonth(Integer year, Integer month);

    /**
     * 根据电厂编码查询实时浓度数据
     * @param plantCode 电厂编码
     * @return 浓度实时数据列表
     */
    List<ElectricSafetyenvDensityRt> getByPlantCode(String plantCode);

    /**
     * 根据年月日查询浓度实时数据
     * @param year 年份
     * @param month 月份
     * @param day 日期
     * @return 浓度实时数据列表
     */
    List<ElectricSafetyenvDensityRt> getByYearMonthDay(Integer year, Integer month, Integer day);

    /**
     * 查询最新的浓度实时数据
     * @param plantCode 电厂编码
     * @return 最新的浓度实时数据
     */
    ElectricSafetyenvDensityRt getLatestByPlantCode(String plantCode);

    /**
     * 获取浓度数据趋势（按日期）
     * @param year 年份
     * @param month 月份
     * @return 日期趋势数据
     */
    List<ElectricSafetyenvDensityRt> getDailyTrend(Integer year, Integer month);

    /**
     * 检查浓度是否超标
     * @param plantCode 电厂编码
     * @return 是否超标
     */
    boolean checkExceedStandard(String plantCode);

    /**
     * 获取浓度数据统计信息
     * @param year 年份
     * @param month 月份
     * @return 统计信息
     */
    ElectricSafetyenvDensityRt getDensityStatistics(Integer year, Integer month);
}

